Many electronic apparatus make use of embedded memory devices. Often, the embedded memory device includes non-volatile memory such as flash memory. An electronic apparatus that includes an embedded memory device (or is connected to a memory device) is often referred to as a host.
The process of a host starting operation and entering a state of readiness for intended operation is called “booting” or a “boot process.” A host typically has a ROM (Read Only Memory) which stores code to start the boot process. When a host is turned on or restarted, it will execute the code stored in the ROM which will instruct the host to read boot data from a dedicated portion of the embedded memory device. The boot data, which can include code as well as reference information (e.g., fields, integers, floating point numbers, characters, words, pointers, etc.), will be used by the host to perform a boot process.
One example of an embedded memory device is an embedded MultiMediaCard (“eMMC”), which implements a MultiMediaCard (“MMC”) interface. Some eMMC devices include a boot region which may comprise one or more boot partitions. Each boot partition is capable of storing all of the boot data needed to perform a boot process. The MMC standard provides for the host to be able to permanently write protect the boot region. However, there may be a need to program the boot region after it has been permanently write protected.